package net.halflite.mzkr.entity.names;

import java.util.Date;

import net.halflite.mzkr.entity.RegistedUser;
import net.halflite.mzkr.entity.names.TempUserNames._TempUserNames;
import net.halflite.mzkr.entity.names.UserImageNames._UserImageNames;
import net.halflite.mzkr.entity.names.UserProfileNames._UserProfileNames;
import net.halflite.mzkr.type.UserStatusType;

import org.seasar.extension.jdbc.name.PropertyName;

/**
 * {@link RegistedUser}のプロパティ名の集合です。
 * 
 */
public class RegistedUserNames {

    /**
     * idのプロパティ名を返します。
     * 
     * @return idのプロパティ名
     */
    public static PropertyName<Long> id() {
        return new PropertyName<Long>("id");
    }

    /**
     * usernameのプロパティ名を返します。
     * 
     * @return usernameのプロパティ名
     */
    public static PropertyName<String> username() {
        return new PropertyName<String>("username");
    }

    /**
     * addressのプロパティ名を返します。
     * 
     * @return addressのプロパティ名
     */
    public static PropertyName<String> address() {
        return new PropertyName<String>("address");
    }

    /**
     * passwordのプロパティ名を返します。
     * 
     * @return passwordのプロパティ名
     */
    public static PropertyName<String> password() {
        return new PropertyName<String>("password");
    }

    /**
     * statusのプロパティ名を返します。
     * 
     * @return statusのプロパティ名
     */
    public static PropertyName<UserStatusType> status() {
        return new PropertyName<UserStatusType>("status");
    }

    /**
     * createdのプロパティ名を返します。
     * 
     * @return createdのプロパティ名
     */
    public static PropertyName<Date> created() {
        return new PropertyName<Date>("created");
    }

    /**
     * modifiedのプロパティ名を返します。
     * 
     * @return modifiedのプロパティ名
     */
    public static PropertyName<Date> modified() {
        return new PropertyName<Date>("modified");
    }

    /**
     * tempUsersのプロパティ名を返します。
     * 
     * @return tempUsersのプロパティ名
     */
    public static _TempUserNames tempUsers() {
        return new _TempUserNames("tempUsers");
    }

    /**
     * userProfilesのプロパティ名を返します。
     * 
     * @return userProfilesのプロパティ名
     */
    public static _UserProfileNames userProfiles() {
        return new _UserProfileNames("userProfiles");
    }

    /**
     * userImagesのプロパティ名を返します。
     * 
     * @return userImagesのプロパティ名
     */
    public static _UserImageNames userImages() {
        return new _UserImageNames("userImages");
    }

    /**
     * @author S2JDBC-Gen
     */
    public static class _RegistedUserNames extends PropertyName<RegistedUser> {

        /**
         * インスタンスを構築します。
         */
        public _RegistedUserNames() {
        }

        /**
         * インスタンスを構築します。
         * 
         * @param name
         *            名前
         */
        public _RegistedUserNames(final String name) {
            super(name);
        }

        /**
         * インスタンスを構築します。
         * 
         * @param parent
         *            親
         * @param name
         *            名前
         */
        public _RegistedUserNames(final PropertyName<?> parent, final String name) {
            super(parent, name);
        }

        /**
         * idのプロパティ名を返します。
         *
         * @return idのプロパティ名
         */
        public PropertyName<Long> id() {
            return new PropertyName<Long>(this, "id");
        }

        /**
         * usernameのプロパティ名を返します。
         *
         * @return usernameのプロパティ名
         */
        public PropertyName<String> username() {
            return new PropertyName<String>(this, "username");
        }

        /**
         * addressのプロパティ名を返します。
         *
         * @return addressのプロパティ名
         */
        public PropertyName<String> address() {
            return new PropertyName<String>(this, "address");
        }

        /**
         * passwordのプロパティ名を返します。
         *
         * @return passwordのプロパティ名
         */
        public PropertyName<String> password() {
            return new PropertyName<String>(this, "password");
        }

        /**
         * statusのプロパティ名を返します。
         *
         * @return statusのプロパティ名
         */
        public PropertyName<UserStatusType> status() {
            return new PropertyName<UserStatusType>(this, "status");
        }

        /**
         * createdのプロパティ名を返します。
         *
         * @return createdのプロパティ名
         */
        public PropertyName<Date> created() {
            return new PropertyName<Date>(this, "created");
        }

        /**
         * modifiedのプロパティ名を返します。
         *
         * @return modifiedのプロパティ名
         */
        public PropertyName<Date> modified() {
            return new PropertyName<Date>(this, "modified");
        }

        /**
         * tempUsersのプロパティ名を返します。
         * 
         * @return tempUsersのプロパティ名
         */
        public _TempUserNames tempUsers() {
            return new _TempUserNames(this, "tempUsers");
        }

        /**
         * userProfilesのプロパティ名を返します。
         * 
         * @return userProfilesのプロパティ名
         */
        public _UserProfileNames userProfiles() {
            return new _UserProfileNames(this, "userProfiles");
        }

        /**
         * userImagesのプロパティ名を返します。
         * 
         * @return userImagesのプロパティ名
         */
        public _UserImageNames userImages() {
            return new _UserImageNames(this, "userImages");
        }
    }
}